package com.demo.common.support.model;

/**
 * 定义返回实体抽象接口,对交互接口进行抽象封装{@link BaseResponse}
 *
 * @author molong
 * @since 2024/5/24
 */
public interface DataResponse<T> {

    /**
     * 对象生成时间戳{@link System#currentTimeMillis()}
     *
     * @return 时间戳
     */
    long getResponseTime();

    /**
     * 本次操作执行结果代码,{@code 0}代表正常执行.异常代码关联{@link org.springframework.http.HttpStatus}或者自行约定相关代码值
     *
     * @return 操作代码
     */
    int getCode();

    /**
     * 本次操作执行结果消息
     *
     * @return 执行结果
     */
    String getMessage();

    /**
     * 当前实体是否为集合 {@link java.util.Collection}
     *
     * @return true为集合
     */
    boolean isCollect();
}
